Expand description

Rust bindings to the jemalloc C library.

jemalloc is a general purpose memory allocation, its documentation can be found here:

jemalloc exposes both a standard and a non-standard API.

Standard API

The standard API includes: the malloc, calloc, realloc, and free, which conform to to ISO/IEC 9899:1990 (“ISO C90”), posix_memalign which conforms to conforms to POSIX.1-2016, and aligned_alloc.

Note that these standard leave some details as implementation defined. This docs document this behavior for jemalloc, but keep in mind that other standard-conforming implementations of these functions in other allocators might behave slightly different.

Non-Standard API

The non-standard API includes: mallocx, rallocx, xallocx, sallocx, dallocx, sdallocx, and nallocx. These functions all have a flags argument that can be used to specify options. Use bitwise or | to specify one or more of the following: MALLOCX_LG_ALIGN, MALLOCX_ALIGN, MALLOCX_ZERO, MALLOCX_TCACHE, MALLOCX_TCACHE_NONE, and MALLOCX_ARENA.

Environment variables

The MALLOC_CONF environment variable affects the execution of the allocation functions.

For the documentation of the MALLCTL namespace visit the jemalloc documenation.

Structs

Extent lifetime management functions.

Constants

Initialize newly allocated memory to contain zero bytes.

Statics

Compile-time string of configuration options.

Allows overriding the function which emits the text strings forming the errors and warnings if for some reason the STDERR_FILENO file descriptor is not suitable for this.

Functions

Align the memory allocation to start at an address that is a multiple of align, where a is a power of two.

Use the arena specified by the index a.

Align the memory allocation to start at an address that is a multiple of 1 << la.

Use the thread-specific cache (tcache) specified by the identifier tc.

Do not use a thread-specific cache (tcache).

Allocates size bytes of memory at an address which is a multiple of alignment.

Allocates zero-initialized space for an array of number objects, each of whose size is size.

Deallocates previously-allocated memory region referenced by ptr.

Deallocates previously-allocated memory region referenced by ptr.

General interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions.

Like mallctl but taking a mib as input instead of a name.

Translates a name to a “Management Information Base” (MIB) that can be passed repeatedly to mallctlbymib.

Allocates size bytes of uninitialized memory.

Writes summary statistics via the write_cb callback function pointer and cbopaque data passed to write_cb, or malloc_message if write_cb is null.

Returns the real size of the previously-allocated memory region referenced by ptr.

Allocates at least size bytes of memory according to flags.

Returns the real size of the allocation that would result from a mallocx function call with the same arguments.

Allocates size bytes of memory at an address which is a multiple of alignment and is placed in *ptr.

Resizes the previously-allocated memory region referenced by ptr to be at least size bytes.

Resizes the previously-allocated memory region referenced by ptr to size bytes.

Returns the real size of the previously-allocated memory region referenced by ptr.

Deallocates previously-allocated memory region referenced by ptr with size hint.

Resizes the previously-allocated memory region referenced by ptr in place to be at least size bytes, returning the real size of the allocation.

Type Definitions

Extent allocation function.

Extent commit function.

Extent deallocation function.

Extent decommit function.

Extent destruction function.

Extent lifetime management functions.

Extent merge function.

Extent purge function.

Extent split function.